home *** CD-ROM | disk | FTP | other *** search
/ Amiga Plus 1999 #2 / Amiga Plus CD - 1999 - No. 2.iso / System-Boost / Workbench / ToolManager / Source / Prefs / toolmanager.h < prev    next >
C/C++ Source or Header  |  1998-06-17  |  21KB  |  494 lines

  1. /*
  2.  * toolmanager.h  V3.1
  3.  *
  4.  * Preferences editor main include file
  5.  *
  6.  * Copyright (C) 1990-98 Stefan Becker
  7.  *
  8.  * This source code is for educational purposes only. You may study it
  9.  * and copy ideas or algorithms from it for your own projects. It is
  10.  * not allowed to use any of the source codes (in full or in parts)
  11.  * in other programs. Especially it is not allowed to create variants
  12.  * of ToolManager or ToolManager-like programs from this source code.
  13.  *
  14.  */
  15.  
  16. /* OS include files */
  17. #include <dos/dos.h>
  18. #include <exec/memory.h>
  19. #include <libraries/asl.h>
  20. #include <libraries/gadtools.h>
  21. #include <libraries/mui.h>
  22. #include <libraries/toolmanager.h>
  23. #include <mui/listtree_mcc.h>
  24. #include <mui/pophotkey_mcc.h>
  25. #include <mui/popport_mcc.h>
  26. #include <mui/popposition_mcc.h>
  27. #include <utility/tagitem.h>
  28. #include <workbench/startup.h>
  29. #include <workbench/workbench.h>
  30.  
  31. /* Do some redefines to enable DICE register parameters */
  32. #define CoerceMethodA  DummyCMA
  33. #define DoMethodA      DummyDMA
  34. #define DoSuperMethodA DummyDSMA
  35. #include <clib/alib_protos.h>
  36. #undef CoerceMethodA
  37. #undef DoMethodA
  38. #undef DoSuperMethodA
  39. #if _DCC
  40. /* Define these functions with DICE regargs */
  41. ULONG CoerceMethodA(__A0 Class *, __A2 Object *, __A1 Msg);
  42. ULONG DoSuperMethodA(__A0 Class *, __A2 Object *, __A1 Msg);
  43. ULONG DoMethodA(__A2 Object *, __A1 Msg);
  44. #else
  45. __stkargs ULONG CoerceMethodA(Class *, Object *, Msg);
  46. __stkargs ULONG DoSuperMethodA(Class *, Object *, Msg);
  47. __stkargs ULONG DoMethodA(Object *, Msg);
  48. #endif
  49.  
  50. /* OS function prototypes */
  51. #include <clib/dos_protos.h>
  52. #include <clib/exec_protos.h>
  53. #include <clib/icon_protos.h>
  54. #include <clib/iffparse_protos.h>
  55. #include <clib/intuition_protos.h>
  56. #include <clib/locale_protos.h>
  57. #include <clib/muimaster_protos.h>
  58. #include <clib/utility_protos.h>
  59.  
  60. /* OS function inline calls */
  61. #include <pragmas/dos_pragmas.h>
  62. #include <pragmas/exec_pragmas.h>
  63. #include <pragmas/icon_pragmas.h>
  64. #include <pragmas/iffparse_pragmas.h>
  65. #include <pragmas/intuition_pragmas.h>
  66. #include <pragmas/locale_pragmas.h>
  67. #include <pragmas/muimaster_pragmas.h>
  68. #include <pragmas/utility_pragmas.h>
  69.  
  70. /* ANSI C include files */
  71. #include <stdlib.h>
  72. #include <string.h>
  73.  
  74. /* Localization */
  75. #define CATCOMP_NUMBERS
  76. #define CATCOMP_STRINGS
  77. #include "locale.h"
  78.  
  79. /* Global defines for string gadget max. content length */
  80. #define LENGTH_STRING    80
  81. #define LENGTH_HOTKEY    80
  82. #define LENGTH_COMMAND  256
  83. #define LENGTH_PATH     256
  84. #define LENGTH_FILENAME 256
  85.  
  86. /* Private MUI Attributes */
  87. #define MUIA_Popscreen_ShowCurrent   0x804238a7 /* V11 i.. BOOL */
  88. #define MUIA_Popscreen_ShowDefault   0x804295ca /* V11 i.. BOOL */
  89. #define MUIA_Popscreen_ShowFrontmost 0x804261a3 /* V11 i.. BOOL */
  90. #define MUIA_Popscreen_ShowMUI       0x804298bf /* V11 i.. BOOL */
  91.  
  92. /* Object creation macros */
  93. #define TMString(contents, maxlen, help)                                      \
  94.                                         StringObject,                         \
  95.                                          MUIA_String_Contents,    (contents), \
  96.                                          MUIA_String_MaxLen,      (maxlen),   \
  97.                                          MUIA_String_AdvanceOnCR, TRUE,       \
  98.                                          MUIA_CycleChain,         TRUE,       \
  99.                                          MUIA_ShortHelp,          (help),     \
  100.                                          StringFrame,                         \
  101.                                         End
  102.  
  103. #define TMInteger(contents, help) StringObject,                               \
  104.                                    MUIA_String_Accept,      TextGlobalAccept, \
  105.                                    MUIA_String_Integer,     (contents),       \
  106.                                    MUIA_String_MaxLen,      11,               \
  107.                                    MUIA_String_AdvanceOnCR, TRUE,             \
  108.                                    MUIA_CycleChain,         TRUE,             \
  109.                                    MUIA_ShortHelp,          (help),           \
  110.                                    StringFrame,                               \
  111.                                   End
  112.  
  113. #define TMPopFile(title, contents, maxlen, help)                              \
  114.                   NewObject(PopASLClass->mcc_Class, NULL,                     \
  115.                    MUIA_Popasl_Type,      ASL_FileRequest,                    \
  116.                    MUIA_Popstring_String, TMString(contents, (maxlen), NULL), \
  117.                    MUIA_Popstring_Button, PopButton(MUII_PopFile),            \
  118.                    MUIA_ShortHelp,        (help),                             \
  119.                    ASLFR_TitleText,       (title)
  120.  
  121. #define TMPopScreen(contents, help)                                           \
  122.         MUI_NewObject(MUIC_Popscreen,                                         \
  123.          MUIA_Popstring_String,      TMString(contents, LENGTH_STRING, NULL), \
  124.          MUIA_Popstring_Button,      PopButton(MUII_PopUp),                   \
  125.          MUIA_Popscreen_ShowMUI,     TRUE,                                    \
  126.          MUIA_Popscreen_ShowDefault, TRUE,                                    \
  127.          MUIA_ShortHelp,             (help)
  128.  
  129. #define TMPopHotKey(contents, help) PophotkeyObject,                          \
  130.             MUIA_Popstring_String,   TMString(contents, LENGTH_HOTKEY, NULL), \
  131.             MUIA_Pophotkey_Extended, TRUE,                                    \
  132.             MUIA_ShortHelp,          (help)
  133.  
  134. #define TMPopPosition(x,y, help) PoppositionObject,                           \
  135.                   MUIA_Popposition_XPos, (x),                                 \
  136.                   MUIA_Popposition_YPos, (y),                                 \
  137.                   MUIA_Popstring_String, TMString(NULL, LENGTH_STRING, NULL), \
  138.                   MUIA_ShortHelp,        (help)
  139.  
  140. /* Debugging */
  141. #ifdef DEBUG
  142. /* Global data */
  143. #define DEBUGFLAGENTRIES  1
  144. #define DEBUGPRINTTAGLIST
  145.  
  146. /* Macros */                                   /* 87654321 */
  147. #define STARTUP_LOG(x)     _LOG(0,  0, (x))    /*        1 */
  148. #define MEMORY_LOG(x)      _LOG(0,  1, (x))    /*        2 */
  149. #define LOCALE_LOG(x)      _LOG(0,  2, (x))    /*        4 */
  150. #define MAINWINDOW_LOG(x)  _LOG(0,  3, (x))    /*        8 */
  151. #define LISTPANEL_LOG(x)   _LOG(0,  4, (x))    /*       10 */
  152. #define LISTTREE_LOG(x)    _LOG(0,  5, (x))    /*       20 */
  153. #define BASE_LOG(x)        _LOG(0,  6, (x))    /*       40 */
  154. #define EXEC_LOG(x)        _LOG(0,  7, (x))    /*       80 */
  155. #define IMAGE_LOG(x)       _LOG(0,  8, (x))    /*      100 */
  156. #define SOUND_LOG(x)       _LOG(0,  9, (x))    /*      200 */
  157. #define MENU_LOG(x)        _LOG(0, 10, (x))    /*      400 */
  158. #define ICON_LOG(x)        _LOG(0, 11, (x))    /*      800 */
  159. #define DOCK_LOG(x)        _LOG(0, 12, (x))    /*     1000 */
  160. #define ACCESS_LOG(x)      _LOG(0, 13, (x))    /*     2000 */
  161. #define GROUP_LOG(x)       _LOG(0, 14, (x))    /*     4000 */
  162. #define CONFIG_LOG(x)      _LOG(0, 15, (x))    /*     8000 */
  163. #define GLOBAL_LOG(x)      _LOG(0, 16, (x))    /*    10000 */
  164. #define POPASL_LOG(x)      _LOG(0, 17, (x))    /*    20000 */
  165. #define DROPAREA_LOG(x)    _LOG(0, 18, (x))    /*    40000 */
  166. #define ENTRYLIST_LOG(x)   _LOG(0, 19, (x))    /*    80000 */
  167. #define ENTRIES_LOG(x)     _LOG(0, 20, (x))    /*   100000 */
  168. #define MISC_LOG(x)        _LOG(0, 21, (x))    /*   200000 */
  169. #define CLIPWINDOW_LOG(x)  _LOG(0, 22, (x))    /*   400000 */
  170. #define CLIPLIST_LOG(x)    _LOG(0, 23, (x))    /*   800000 */
  171. #else
  172. #define STARTUP_LOG(x)
  173. #define MEMORY_LOG(x)
  174. #define LOCALE_LOG(x)
  175. #define MAINWINDOW_LOG(x)
  176. #define LISTPANEL_LOG(x)
  177. #define LISTTREE_LOG(x)
  178. #define BASE_LOG(x)
  179. #define GROUP_LOG(x)
  180. #define EXEC_LOG(x)
  181. #define IMAGE_LOG(x)
  182. #define SOUND_LOG(x)
  183. #define MENU_LOG(x)
  184. #define ICON_LOG(x)
  185. #define DOCK_LOG(x)
  186. #define ACCESS_LOG(x)
  187. #define CONFIG_LOG(x)
  188. #define GLOBAL_LOG(x)
  189. #define POPASL_LOG(x)
  190. #define DROPAREA_LOG(x)
  191. #define ENTRYLIST_LOG(x)
  192. #define ENTRIES_LOG(x)
  193. #define MISC_LOG(x)
  194. #define CLIPWINDOW_LOG(x)
  195. #define CLIPLIST_LOG(x)
  196. #endif
  197.  
  198. /* Globale ToolManager definitions */
  199. #include "/global.h"
  200.  
  201. /* Global data */
  202. extern struct Library         *DOSBase;
  203. extern struct Library         *IconBase;
  204. extern struct Library         *IFFParseBase;
  205. extern struct Library         *IntuitionBase;
  206. extern struct Library         *MUIMasterBase;
  207. extern struct Library         *SysBase;
  208. extern struct Library         *UtilityBase;
  209. extern struct MUI_CustomClass *MainWindowClass;
  210. extern struct MUI_CustomClass *GlobalClass;
  211. extern struct MUI_CustomClass *ListPanelClass;
  212. extern struct MUI_CustomClass *ListTreeClass;
  213. extern struct MUI_CustomClass *PopASLClass;
  214. extern struct MUI_CustomClass *DropAreaClass;
  215. extern struct MUI_CustomClass *EntryListClass;
  216. extern struct MUI_CustomClass *BaseClass;
  217. extern struct MUI_CustomClass *GroupClass;
  218. extern struct MUI_CustomClass *ObjectClasses[];
  219. extern struct MUI_CustomClass *ClipWindowClass;
  220. extern struct MUI_CustomClass *ClipListClass;
  221. extern struct Hook             AppMessageHook;
  222. extern char                   *ProgramName;
  223. extern ULONG                   CreateIcons;
  224. extern const char              ConfigSaveName[];
  225. extern const char              ConfigUseName[];
  226. extern const char             *TextGlobalTitle;
  227. extern const char             *TextGlobalCommand;
  228. extern const char             *TextGlobalSelectCmd;
  229. extern const char             *TextGlobalDirectory;
  230. extern const char             *TextGlobalSelectDir;
  231. extern const char             *TextGlobalHotKey;
  232. extern const char             *TextGlobalPublicScreen;
  233. extern const char             *TextGlobalPosition;
  234. extern const char             *TextGlobalExecObject;
  235. extern const char             *TextGlobalImageObject;
  236. extern const char             *TextGlobalSoundObject;
  237. extern const char             *TextGlobalDock;
  238. extern const char             *TextGlobalSelectFile;
  239. extern const char             *TextGlobalDelete;
  240. extern const char             *HelpGlobalDelete;
  241. extern const char             *TextGlobalUse;
  242. extern const char             *HelpGlobalUse;
  243. extern const char             *TextGlobalCancel;
  244. extern const char             *HelpGlobalCancel;
  245. extern const char              TextGlobalAccept[];
  246. extern const char              TextGlobalEmpty[];
  247.  
  248. /* Data structures */
  249. struct AttachData {
  250.  struct MinNode  ad_Node;
  251.  Object         *ad_Object;
  252.  Object         *ad_AttachedTo;
  253. };
  254.  
  255. struct DockEntry {
  256.  struct MinNode     de_Node;
  257.  struct AttachData *de_Exec;
  258.  struct AttachData *de_Image;
  259.  struct AttachData *de_Sound;
  260. };
  261.  
  262. /* Prototypes of internal functions */
  263. struct MUI_CustomClass  *CreateMainWindowClass(void);
  264. struct MUI_CustomClass  *CreateListPanelClass(void);
  265. struct MUI_CustomClass  *CreateListTreeClass(void);
  266. struct AttachData       *AttachObject(Object *, Object *, ULONG);
  267. struct MUI_CustomClass  *CreatePopASLClass(void);
  268. struct MUI_CustomClass  *CreateDropAreaClass(void);
  269. struct MUI_CustomClass  *CreateEntryListClass(void);
  270. struct MUI_CustomClass  *CreateBaseClass(void);
  271. struct MUI_CustomClass  *CreateExecClass(void);
  272. struct MUI_CustomClass  *CreateImageClass(void);
  273. struct MUI_CustomClass  *CreateSoundClass(void);
  274. struct MUI_CustomClass  *CreateMenuClass(void);
  275. struct MUI_CustomClass  *CreateIconClass(void);
  276. struct MUI_CustomClass  *CreateDockClass(void);
  277. struct MUI_CustomClass  *CreateAccessClass(void);
  278. struct MUI_CustomClass  *CreateGroupClass(void);
  279. struct MUI_CustomClass  *CreateClipWindowClass(void);
  280. struct MUI_CustomClass  *CreateClipListClass(void);
  281. void                     ReadConfig(Object *, Object **, BOOL, const char *);
  282. const char              *ReadConfigWithRequester(Object *, Object **, BOOL,
  283.                                                  const char *);
  284. BOOL                     WriteConfig(Object *, Object **, const char *, BOOL);
  285. const char              *WriteConfigWithRequester(Object *, Object **,
  286.                                                   const char *, BOOL);
  287. char                    *ReadStringProperty(struct IFFHandle *, ULONG, ULONG);
  288. BOOL                     WriteProperty(struct IFFHandle *, ULONG, void *,
  289.                                        ULONG);
  290. BOOL                     WriteStringProperty(struct IFFHandle *, ULONG,
  291.                                              const char *);
  292. BOOL                     ParseGlobalIFF(struct IFFHandle *);
  293. BOOL                     WriteGlobalIFF(struct IFFHandle *);
  294. void                     FreeGlobalData(void);
  295. struct MUI_CustomClass  *CreateGlobalClass(void);
  296. void                     OpenGlobalWindow(Object *);
  297. BOOL                     CheckRequesters(Object *);
  298. void                     ReadDockEntries(struct IFFHandle *, struct MinList *,
  299.                                          Object *, Object **);
  300. BOOL                     WriteDockEntries(struct IFFHandle *,
  301.                                           struct MinList *);
  302. void                     FreeDockEntry(struct DockEntry *);
  303. void                     FreeDockEntries(struct MinList *);
  304. struct DockEntry        *CopyDockEntry(struct DockEntry *, Object *);
  305. BOOL                     RemoveDockEntryAttach(struct DockEntry *,
  306.                                                struct AttachData *);
  307. void                     InitLocale(void);
  308. void                     DeleteLocale(void);
  309. const char              *TranslateString(const char *, ULONG);
  310. ULONG                    DoSuperNew(Class *, Object *, Tag tag1, ...);
  311. char                    *DuplicateString(const char *);
  312. char                    *GetStringContents(Object *, const char *);
  313. ULONG                    GetCheckmarkState(Object *, ULONG);
  314. ULONG                    GetCheckitState(Object *, ULONG);
  315. struct AttachData       *GetAttachData(Object *, Object *,
  316.                                        struct AttachData *);
  317. void                     SetDisabledState(Object *, ULONG);
  318. Object                  *MakeButton(const char *, const char *);
  319. Object                  *MakeCheckmark(ULONG, const char *);
  320.  
  321. /* ToolManager class Methods */
  322. #define TMM_Methods (TAG_USER + 0x00100000)
  323.      /* Method name                                          Method ID       */
  324.      /*                Method params    Return type                          */
  325.  
  326.      /* All classes                                                          */
  327. #define TMM_Finish                                           (TMM_Methods +  1)
  328.      /*                TMP_Finish       (void)                               */
  329.  
  330.      /* MainWindow class                                                     */
  331. #define TMM_Load                                             (TMM_Methods +  2)
  332.      /*                TMP_Load         (void)                               */
  333. #define TMM_Menu                                             (TMM_Methods +  3)
  334.      /*                TMP_Menu         (void)                               */
  335. #define TMM_AppEvent                                         (TMM_Methods +  4)
  336.      /*                TMP_AppEvent     (void)                               */
  337.  
  338.      /* ListTree class                                                       */
  339. #define TMM_NewGroup                                         (TMM_Methods +  5)
  340.      /*                Msg              ("Tree Node")                        */
  341. #define TMM_NewObject                                        (TMM_Methods +  6)
  342.      /*                Msg              ("Tree Node")                        */
  343. #define TMM_Sort                                             (TMM_Methods +  7)
  344.      /*                Msg              (void)                               */
  345. #define TMM_Selected                                         (TMM_Methods +  8)
  346.      /*                TMP_Selected     (void)                               */
  347. #define TMM_Update                                           (TMM_Methods +  9)
  348.      /*                TMP_Update       (void)                               */
  349.  
  350.      /* Classes derived from Base class                                      */
  351. #define TMM_Attach                                           (TMM_Methods + 10)
  352.      /*                TMP_Attach       (struct AttachData *)                */
  353. #define TMM_Detach                                           (TMM_Methods + 11)
  354.      /*                TMP_Detach       (void)                               */
  355. #define TMM_Notify                                           (TMM_Methods + 12)
  356.      /*                TMP_Notify       (void)                               */
  357. #define TMM_Edit                                             (TMM_Methods + 13)
  358.      /*                TMP_Edit         (void)                               */
  359. #define TMM_Change                                           (TMM_Methods + 14)
  360.      /*                Msg              (void)                               */
  361. #define TMM_ParseIFF                                         (TMM_Methods + 15)
  362.      /*                TMP_ParseIFF     (BOOL)                               */
  363. #define TMM_WriteIFF                                         (TMM_Methods + 16)
  364.      /*                TMP_WriteIFF     (BOOL)                               */
  365.  
  366.      /* Classes derived from Base class, ListPanel class, EntryList class    */
  367. #define TMM_WBArg                                            (TMM_Methods + 17)
  368.      /*                TMP_WBArg        (Object *)                           */
  369.  
  370.      /* ClipList, DropArea and Dock classes                                  */
  371. #define TMM_DoubleClicked                                    (TMM_Methods + 18)
  372.      /*                Msg              (void)                               */
  373.  
  374.      /* EntryList class                                                      */
  375. #define TMM_Column                                           (TMM_Methods + 19)
  376.      /*                TMP_Column       (void)                               */
  377.  
  378. /* Method parameters */
  379. #define TMV_Finish_Cancel 0
  380. #define TMV_Finish_Use    1
  381. #define TMV_Finish_Test   2
  382. #define TMV_Finish_Save   3
  383. struct TMP_Finish {
  384.  ULONG tmpf_MethodID;
  385.  ULONG tmpf_Type;
  386. };
  387.  
  388. struct TMP_AppEvent {
  389.  ULONG              tmpae_MethodID;
  390.  struct AppMessage *tmpae_Message;
  391.  Object            *tmpae_Object;
  392. };
  393.  
  394. struct TMP_Load {
  395.  ULONG       tmpl_MethodID;
  396.  const char *tmpl_File;
  397. };
  398.  
  399. struct TMP_Menu {
  400.  ULONG tmpm_MethodID;
  401.  ULONG tmpm_UserData;
  402. };
  403.  
  404. struct TMP_SetGroup {
  405.  ULONG       tmpsg_MethodID;
  406.  const char *tmpsg_Name;
  407. };
  408.  
  409. struct TMP_Selected {
  410.  ULONG                          tmps_MethodID;
  411.  struct MUIS_Listtree_TreeNode *tmps_Entry;
  412. };
  413.  
  414. struct TMP_Update {
  415.  ULONG   tmpu_MethodID;
  416.  Object *tmpu_Entry;
  417.  ULONG   tmpu_Type;
  418. };
  419.  
  420. struct TMP_Attach {
  421.  ULONG   tmpa_MethodID;
  422.  Object *tmpa_Object;
  423. };
  424.  
  425. struct TMP_Detach {
  426.  ULONG              tmpd_MethodID;
  427.  struct AttachData *tmpd_Data;
  428. };
  429.  
  430. struct TMP_Notify {
  431.  ULONG              tmpn_MethodID;
  432.  struct AttachData *tmpn_Data;
  433. };
  434.  
  435. struct TMP_Edit {
  436.  ULONG   tmpe_MethodID;
  437.  Object *tmpe_Group;
  438. };
  439.  
  440. struct TMP_ParseIFF {
  441.  ULONG              tmppi_MethodID;
  442.  struct IFFHandle  *tmppi_IFFHandle;
  443.  Object           **tmppi_Lists;
  444. };
  445.  
  446. struct TMP_WriteIFF {
  447.  ULONG             tmpwi_MethodID;
  448.  struct IFFHandle *tmpwi_IFFHandle;
  449. };
  450.  
  451. struct TMP_WBArg {
  452.  ULONG          tmpwa_MethodID;
  453.  struct WBArg  *tmpwa_Argument;
  454.  Object       **tmpwa_Lists;
  455. };
  456.  
  457. struct TMP_Column {
  458.  ULONG tmpc_MethodID;
  459.  ULONG tmpc_Column;
  460. };
  461.  
  462. /* Method attributes */
  463. /* i = Can be supplied in OM_NEW    */
  464. /* I = MUST be supplied in OM_NEW   */
  465. /* s = Can be changed with OM_SET   */
  466. /* g = Can be requested with OM_GET */
  467. #define TMA_DUMMY     (TAG_USER + 0x00100000)  /* XXX (Type)                 */
  468.  
  469. /* ListTree attributes */
  470. #define TMA_LISTTREE  (TMA_DUMMY     + 0x0000)
  471. #define TMA_Class     (TMA_LISTTREE  +      1) /* I.. (MUI_CustomClass *)    */
  472. #define TMA_Active    (TMA_LISTTREE  +      2) /* ..g (Object *)             */
  473.  
  474. /* Base attributes */
  475. #define TMA_BASE      (TMA_DUMMY     + 0x1000)
  476. #define TMA_Name      (TMA_BASE      +      1) /* Isg (const char *)         */
  477. #define TMA_ID        (TMA_BASE      +      2) /* .sg (ULONG)                */
  478. #define TMA_Type      (TMA_BASE      +      3) /* I.g (ULONG)                */
  479. #define TMOBJTYPE_GROUP TMOBJTYPES             /* special value for groups   */
  480. #define TMA_List      (TMA_BASE      +      4) /* I.. (Object *)             */
  481.  
  482. /* DropArea attributes */
  483. #define TMA_DROPAREA  (TMA_DUMMY     + 0x2000)
  484. #define TMA_Attach    (TMA_DROPAREA  +      1) /* I.g (struct AttachData *)  */
  485. #define TMA_Object    (TMA_DROPAREA  +      2) /* .s. (struct Object *)      */
  486.  
  487. /* EntryList attributes */
  488. #define TMA_ENTRYLIST (TMA_DUMMY     + 0x3000)
  489. #define TMA_Entries   (TMA_ENTRYLIST +      1) /* I.g (struct MinList *)     */
  490.  
  491. /* PopASL attributes */
  492. #define TMA_POPASL    (TMA_DUMMY     + 0x4000)
  493. #define TMA_ButtonDisabled (TMA_POPASL +    1) /* .s. (BOOL)                 */
  494.